/**
 * 菜单工具模块统一导出入口
 * 
 * 使用示例：
 * 
 * // 导入核心功能
 * import { useMenuData, cleanMenuData, processMenuData } from '@/utils/menu'
 * 
 * // 导入筛选功能
 * import { filterApps, generateAppCategories, isAppAdded } from '@/utils/menu'
 * 
 * // 导入白名单功能
 * import { isInWhitelist, getWhitelistPath } from '@/utils/menu'
 * 
 * // 导入图标功能
 * import { getIconForCategory, getAppIcon } from '@/utils/menu'
 * 
 * // 导入类型
 * import type { IMenuCategory, IAppCategory, IMenuData } from '@/utils/menu'
 */

// 导出类型定义
export type {
  IMenuCategory,
  IWhitelistConfig,
  IAppCategory,
  IMenuData,
  IFilterParams,
  IIconMap
} from './types'

// 导出核心功能
export {
  cleanMenuData,
  getFlatMenus,
  findMenuById,
  isMenuInWhitelist,
  filterMenusByWhitelist,
  processMenuData,
  findCategoryById,
  getMenuStats
} from './core'

// 导出筛选功能
export {
  filterApps,
  filterAppsAdvanced,
  generateAppCategories,
  isAppAdded,
  handleSearch,
  handleCategorySelect,
  searchInMenus,
  groupMenusByCategory,
  getFilterStats
} from './filter'

// 导出白名单功能
export {
  APP_WHITELIST,
  APP_WHITELIST_CONFIG,
  getWhitelistPath,
  getWhitelistPaths,
  getAllWhitelistConfig,
  isInWhitelist,
  analyzeWhitelistConfig
} from './whitelist'

// 导出图标功能
export {
  getIconForCategory,
  getAppIcon,
  getDefaultAppIcon,
  getMenuCategoryIcon,
  getMenuDefaultIcon,
  addIconMapping,
  getAllIconMappings
} from './icons'

// 导出钩子函数
export {
  useMenuData,
  useReactiveMenuData,
  useCachedMenuData,
  clearMenuCache,
  useMenuStats,
  useMenuSearch
} from './hooks'

// 默认导出主要的钩子函数
export { useMenuData as default } from './hooks'
